<?php
App::uses('Review', 'Model');

/**
 * Comentario Test Case
 *
 */
class ReviewTestCase extends CakeTestCase {
	
	public $fixtures = array('app.produto', 'app.review', 'app.usuario');
	
	public function setUp() {
		parent::setUp();
		$this->Produto = ClassRegistry::init('Produto');
	}
	
	public function testMelhoresNotas(){
		$expected = array(
			array('Produto'=>
				array(
					'id' => 1,
					'empresa_id' => 1,
					'tipos_produto_id' => 1,
					'descricao'=> "Produto muito legal",
					'numero_votos' => 100,
					'media_votos' => 10,
					'endereco_imagem'=>"",
					'link'=>"string-certa"
				)
			),
			array('Produto'=>
				array(
					'id' => 3,
					'empresa_id' => 1,
					'tipos_produto_id' => 1,
					'descricao'=> "Produto muito legal",
					'numero_votos' => 100,
					'media_votos' => 7.6,
					'endereco_imagem'=>"",
					'link'=>""
				)
			),
			array('Produto'=>
				array(
					'id' => 7,
					'empresa_id' => 1,
					'tipos_produto_id' => 1,
					'descricao'=> "Produto muito legal",
					'numero_votos' => 100,
					'media_votos' => 7.3,
					'endereco_imagem'=>"",
					'link'=>""
				)
			),
			array('Produto'=>
				array(
					'id' => 8,
					'empresa_id' => 1,
					'tipos_produto_id' => 1,
					'descricao'=> "Produto muito legal",
					'numero_votos' => 100,
					'media_votos' => 4.8,
					'endereco_imagem'=>"",
					'link'=>""
				)
			),
			array('Produto'=>
				array(
					'id' => 6,
					'empresa_id' => 1,
					'tipos_produto_id' => 1,
					'descricao'=> "Produto muito legal",
					'numero_votos' => 100,
					'media_votos' => 4.4,
					'endereco_imagem'=>"",
					'link'=>""
				)
			),
		); 
		$result = $this->Produto->melhoresNotas('teste');
		$this->assertEquals($expected, $result);
	}
	
	public function testMelhoresNotasPorEmpresaNulo(){
		$result = $this->Produto->melhoresNotasPorEmpresa('teste', 20000);
		$this->assertEquals(array(), $result);
	}
	
	public function testMelhoresNotasPorEmpresaMenosQueLimite(){
		$result = $this->Produto->melhoresNotasPorEmpresa('teste', 1, 2);
		$expected = array(
			array('Produto'=>
				array(
					'id' => 1,
					'empresa_id' => 1,
					'tipos_produto_id' => 1,
					'descricao'=> "Produto muito legal",
					'numero_votos' => 100,
					'media_votos' => 10,
					'endereco_imagem'=>"",
					'link'=>"string-certa"
				)
			),
			array('Produto'=>
				array(
					'id' => 3,
					'empresa_id' => 1,
					'tipos_produto_id' => 1,
					'descricao'=> "Produto muito legal",
					'numero_votos' => 100,
					'media_votos' => 7.6,
					'endereco_imagem'=>"",
					'link'=>""
				)
			),
		);
		$this->assertEquals($expected, $result);
	}
	
}